﻿using Bot.Domain.Entities;
using Comm100.Framework;
using Comm100.Framework.AutoMapper;
using Comm100.Public;
using Bot.Domain.Bo;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
using Bot.Domain;
using Bot.Domain.Enum;

namespace Bot.Application.Dto
{
    [AutoMapFrom(typeof(Chatbot))]
    public class ChatbotDto
    {
        public Guid Id { get; set; }
        public string Name { get; set; }
        public EnumBotType EngineType { get; set; }
        public string Language { get; set; }
        public bool IsTrained { get; set; }
        public string MessageWhenNotHelpful { get; set; }
        public bool IfIncludeContactAgentOptionWhenNotHelpful { get; set; }
        public string MessageWhenProvidingPossibleAnswer { get; set; }
        public int ConsecutiveTimesOfPossibleAnswers { get; set; }        
        public string MessageAfterVisitorChooseToContactAgent { get; set; }
        public string ContactAgentButtonTextWhenOnline { get; set; }
        public string ContactAgentButtonTextWhenOffline { get; set; }
        public string FormSubmitButtonText { get; set; }
        public string FormCancelButtonText { get; set; }
        public string FormConfirmButtonText { get; set; }
        public decimal HighConfidenceScore { get; set; }
        public decimal NoAnswerScore { get; set; }
        public DateTime LastUpdatedTime { get; set; }

        public List<string> EnabledChannels { get; set; }
        public List<MessageAfterSeveralConsecutivePossibleAnswersInChannelDto> MessageAfterSeveralConsecutivePossibleAnswersInChannels { get; set; }
        public List<GreetingMessageInChannelDto> GreetingMessageInChannels { get; set; }
        public List<NoAnswerMessageInChannelDto> NoAnswerMessageInChannels { get; set; }
        public WebhookDto ThirdPartyWebhook { get; set; }
        public ImageDto Avatar { get; set; }
    }
}
